Capas de la Malla Societaria
Este endpoint recorre la malla societaria de un RUT nivel por nivel y devuelve, paginadas, las relaciones de participación del nivel que solicites. Así puedes reconstruir la estructura de propiedad completa (socios de socios) sin traer toda la malla en una sola llamada.
- Consultar un RUT ya cargado en tu cuenta no genera costos adicionales.
- El RUT debe estar cargado en tu cuenta antes de la consulta (ver Carga de RUT).
- Requiere que tu plan incluya el ayudante Legal.
- Para saber cuántos niveles tiene la malla y cuántas relaciones hay en cada uno, usa Niveles de la Malla Societaria.
Cómo se construyen los niveles
- Nivel 1: las relaciones directas del RUT consultado. Para una sociedad, son las personas y sociedades relacionadas con ella: socios, accionistas u otros roles (ver
tipos). Para una persona natural, son las sociedades en las que participa. - Nivel n + 1: se expanden las relaciones vigentes del nivel n:
- Una sociedad se expande hacia sus socios.
- Una persona natural se expande hacia las otras sociedades en las que participa, pero solo en el modo
ampliada. En el modobeneficiariosFinales(por defecto), las personas naturales son el extremo de cada rama.
- Las relaciones no vigentes (ex-socios) se listan en su nivel con
vigente: false, pero la malla no se expande a partir de ellas. - Cada relación aparece una sola vez, en el nivel más cercano al RUT consultado.
- La profundidad máxima es de 50 niveles y cada página trae hasta 100 relaciones.
- El recorrido tiene un límite de tiempo y de tamaño. Si una malla muy extensa lo supera, la respuesta indica
truncada: true(ver Mallas truncadas).
Detalle de API
Request
- URL:
/helper/legal/{rut}/capasMallaSocietaria?nivel={nivel}&page={page}&modo={modo} - Método:
GET
Parámetros de ruta (path)
| Valor | Tipo | Es requerido | Descripción |
|---|---|---|---|
rut | string | Sí | RUT a consultar, en formato "12345678-9". |
Parámetros de consulta (query)
| Valor | Tipo | Es requerido | Descripción |
|---|---|---|---|
nivel | number | No | Nivel de la malla a consultar. Entero entre 1 y 50. Por defecto 1. |
page | number | No | Página del nivel solicitado. Entero mayor o igual a 1. Por defecto 1. |
modo | string | No | Forma de recorrer la malla: beneficiariosFinales (por defecto) o ampliada. Distingue mayúsculas y minúsculas. |
| Modo | Qué recorre |
|---|---|
beneficiariosFinales | Expande solo las sociedades vigentes, hasta llegar a las personas naturales, que son el extremo de cada rama. |
ampliada | Lo mismo que beneficiariosFinales y, además, expande a cada persona natural vigente hacia las otras sociedades en las que participa. Así muestra la red de sociedades relacionadas. |
Ejemplo request con curl
curl -X 'GET' \
'https://prod.api.thesheriff.cl/api/clients/v3/helper/legal/76123456-0/capasMallaSocietaria?nivel=1&page=1&modo=beneficiariosFinales' \
-H 'accept: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9EjemploDeToken123'
Response
Diferencias por tipo de persona
La estructura de la respuesta es la misma para personas naturales y jurídicas; lo que cambia es el contenido del nivel 1:
| Campo del nivel 1 | Persona jurídica | Persona natural |
|---|---|---|
rutSocio / nombreSocio | Cada socio o accionista de la sociedad consultada | La persona consultada |
rutSociedad / nombreSociedad | La sociedad consultada | Cada sociedad en la que participa la persona |
nombre (en data) | Razón social de la sociedad | Nombre de la persona |
Respuesta para persona jurídica
Success
-
Status code: 200
-
Example response body:
{
"success": true,
"data": {
"rut": "76123456-0",
"nombre": "EMPRESA FICTICIA SPA",
"modo": "beneficiariosFinales",
"truncada": false,
"nivel": 1,
"siguienteNivel": true,
"page": 1,
"totalPages": 1,
"cantidad": 2,
"relaciones": [
{
"nivel": 1,
"rutSocio": "11111111-1",
"nombreSocio": "SOCIO FICTICIO UNO",
"rutSociedad": "76123456-0",
"nombreSociedad": "EMPRESA FICTICIA SPA",
"porcentaje": 70,
"vigente": true,
"tipos": ["SOCIO"]
},
{
"nivel": 1,
"rutSocio": "22222222-2",
"nombreSocio": "HOLDING FICTICIO LTDA",
"rutSociedad": "76123456-0",
"nombreSociedad": "EMPRESA FICTICIA SPA",
"porcentaje": 30,
"vigente": true,
"tipos": ["SOCIO", "ADMINISTRADOR"]
}
],
"ultimaActualizacion": "15-08-2026 13:45:10"
}
}En el ejemplo,
HOLDING FICTICIO LTDAes una sociedad vigente, por lo que sus socios aparecen al consultarnivel=2.SOCIO FICTICIO UNOes una persona natural: en el modobeneficiariosFinalesno se expande, y en el modoampliadasus otras sociedades aparecen ennivel=2.
Respuesta para persona natural
Para una persona natural, el nivel 1 son las sociedades en las que participa: en cada relación, rutSocio es la persona consultada y rutSociedad es la sociedad. En el nivel 2 aparecen los demás socios de esas sociedades.
Success
-
Status code: 200
-
Example response body:
{
"success": true,
"data": {
"rut": "11111111-1",
"nombre": "SOCIO FICTICIO UNO",
"modo": "beneficiariosFinales",
"truncada": false,
"nivel": 1,
"siguienteNivel": true,
"page": 1,
"totalPages": 1,
"cantidad": 2,
"relaciones": [
{
"nivel": 1,
"rutSocio": "11111111-1",
"nombreSocio": "SOCIO FICTICIO UNO",
"rutSociedad": "76123456-0",
"nombreSociedad": "EMPRESA FICTICIA SPA",
"porcentaje": 70,
"vigente": true,
"tipos": ["SOCIO", "ADMINISTRADOR"]
},
{
"nivel": 1,
"rutSocio": "11111111-1",
"nombreSocio": "SOCIO FICTICIO UNO",
"rutSociedad": "77777777-7",
"nombreSociedad": "INVERSIONES FICTICIAS LIMITADA",
"porcentaje": 40,
"vigente": true,
"tipos": ["SOCIO"]
}
],
"ultimaActualizacion": "15-08-2026 13:45:10"
}
}
Respuesta sin relaciones
Un RUT sin relaciones registradas responde 200 con la malla vacía, no 404. Lo mismo ocurre al pedir un nivel sin relaciones o una page mayor que totalPages:
{
"success": true,
"data": {
"rut": "76123456-0",
"nombre": null,
"modo": "beneficiariosFinales",
"truncada": false,
"nivel": 1,
"siguienteNivel": false,
"page": 1,
"totalPages": 0,
"cantidad": 0,
"relaciones": [],
"ultimaActualizacion": null
}
}
Campos de la respuesta
Los campos son los mismos para personas naturales y jurídicas; solo cambia el contenido del nivel 1 (ver Diferencias por tipo de persona).
| Campo | Tipo | Descripción |
|---|---|---|
success | bool | Indica si la operación fue exitosa. |
data | object | Nivel solicitado de la malla societaria, paginado. |
Campos dentro de data:
| Campo | Tipo | Descripción |
|---|---|---|
rut | string | RUT consultado, normalizado sin puntos (formato "12345678-9"). |
nombre | string | Razón social o nombre del RUT consultado; null si no está en las fuentes legales. |
modo | string | Modo de recorrido usado: "beneficiariosFinales" o "ampliada". |
truncada | boolean | true si el recorrido se interrumpió antes de completar el nivel solicitado o el siguiente (ver Mallas truncadas). |
nivel | number | Nivel devuelto en esta respuesta. |
siguienteNivel | boolean | true si el nivel nivel + 1 tiene relaciones. |
page | number | Página devuelta. |
totalPages | number | Cantidad de páginas del nivel solicitado (100 relaciones por página). |
cantidad | number | Cantidad total de relaciones del nivel solicitado. |
relaciones | array | Relaciones de la página solicitada (ver campos anidados). |
ultimaActualizacion | string | Fecha y hora de la última actualización del ayudante Legal (formato "DD-MM-YYYY HH:mm:ss"); null si no hay registro. |
Campos dentro de cada elemento de relaciones:
| Campo | Tipo | Descripción |
|---|---|---|
nivel | number | Nivel en el que aparece la relación. |
rutSocio | string | RUT de quien participa (persona o sociedad). |
nombreSocio | string | Nombre o razón social de quien participa; puede ser null. |
rutSociedad | string | RUT de la sociedad participada. |
nombreSociedad | string | Razón social de la sociedad participada; puede ser null. |
porcentaje | number | Porcentaje de participación, con hasta 2 decimales (ej: 70); null si no se informa. |
vigente | boolean | true si la relación sigue vigente; false para ex-socios. |
tipos | array | Roles de quien participa en la sociedad (ej: ["SOCIO", "ADMINISTRADOR"]). |
En cada nivel, las relaciones se ordenan con las vigentes primero y luego por porcentaje de participación, de mayor a menor. Las que no informan porcentaje van al final.
- Consulta Niveles de la Malla Societaria con el mismo
modopara obtenernivelesDisponibles. - Para cada nivel, recorre
pagedesde1hastatotalPages. - Usa el mismo
modoen todas las consultas: cada modo produce niveles distintos.
Mallas truncadas
Para responder en un tiempo acotado, el recorrido se detiene al superar los 30 segundos de procesamiento o las 50.000 entidades visitadas, o al llegar al nivel 50 con relaciones por recorrer. Cuando esto ocurre:
truncadaviene entrue.- Si se superó el tiempo, el nivel que estaba en proceso no se entrega a medias: viaja sin relaciones.
- Si se superó el tamaño, el nivel siguiente se arma solo con parte de las sociedades y puede traer relaciones incompletas.
- Los niveles anteriores al corte se entregan completos.
Si recibes truncada: true, considera la malla parcial a partir del nivel que no alcanzó a completarse. Las mallas en modo ampliada son más extensas y tienen más probabilidad de truncarse.
Errores
Además de los errores comunes y los de acceso al RUT, este endpoint puede responder:
400 - Parámetros inválidos
Algún parámetro de la ruta o de la consulta no es válido. El mensaje indica el parámetro rechazado; si hay más de uno, los mensajes vienen uno a continuación del otro, separados por un espacio. Corrige los parámetros indicados y vuelve a enviar la solicitud.
| Cuándo ocurre | Mensaje en error |
|---|---|
| RUT con formato o dígito verificador inválido | El RUT ingresado no es válido. Por favor verifica el formato. |
nivel no numérico | El campo 'nivel' debe ser un número. |
nivel decimal | El campo 'nivel' debe ser un número entero. |
nivel menor a 1 | El campo 'nivel' debe ser mayor o igual a 1. |
nivel mayor a 50 | El campo 'nivel' debe ser menor o igual a 50. |
page menor a 1 | El campo 'page' debe ser mayor o igual a 1. |
modo inválido | El campo 'modo' debe ser uno de: [beneficiariosFinales, ampliada]. |
{
"success": false,
"code": 400,
"error": "El campo 'nivel' debe ser menor o igual a 50."
}
401 - No autorizado
El token no se envió, expiró o no es válido (ver Errores de autenticación). Si expiró, solicita uno nuevo en Obtener Token.
{
"success": false,
"code": 401,
"error": "El token de autenticación no es válido."
}
403 - RUT sin acceso
El RUT existe en Sheriff, pero no está cargado en tu cuenta. Cárgalo con Carga de RUT antes de consultarlo.
{
"success": false,
"code": 403,
"error": "No tienes permisos para consultar este RUT."
}
403 - Plan sin el ayudante Legal
Tu plan no incluye el ayudante Legal.
{
"success": false,
"code": 403,
"error": "El plan no cuenta con el ayudante legal."
}
404 - RUT no encontrado
El RUT no existe en Sheriff. Cárgalo con Carga de RUT antes de consultarlo.
{
"success": false,
"code": 404,
"error": "El RUT consultado no existe en el sistema."
}
429 - Demasiadas solicitudes
Superaste el límite de solicitudes (ver Rate Limits). Espera los segundos que indica el header Retry-After antes de reintentar.
{
"success": false,
"code": 429,
"error": "Demasiadas solicitudes desde esta API externa, intente más tarde."
}
500 - Error interno del servidor
Ocurrió un error inesperado. Intenta nuevamente más tarde.
{
"success": false,
"code": 500,
"error": "Ocurrió un error interno. Intenta nuevamente más tarde."
}